home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
United Public Domain Gold 2
/
United Public Domain Gold 2.iso
/
utilities
/
pu083.dms
/
pu083.adf
/
Distance
/
distance
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1989-03-19
|
9KB
|
362 lines
pi=3.14159
DEF FNrad(x)=x*pi/180 'Convert degrees to radians
mi$="miles"
de$="deegrees"
WINDOW 2,,(0,0)-(629,186),0
PRINT
PRINT"VE3AGC J.P.MILLAR 1102-756 Kipps Lane, London, Ontario N5Y 4X9 519-434-0992"
PRINT"Enter HOME LOCATION or CITY? in lower case"
PRINT"Enter LATITUDE and LONGITUDE in degrees.minutes"
PRINT"Enter East Longitude and South Latitude as negative numbers"
PRINT"On CITY? requester enter list or quit as required"
PRINT"When listing use Amiga S or CTRL S to stop and any key to start"
PRINT"Right mouse button can also control listing on screen"
PRINT"Defaults are NO SPEECH and SCREEN"
PRINT
COLOR 3,2:INPUT"SPEECH Y/N";s$
INPUT"SCREEN OR PRINTER S/P";p$
INPUT"HOME LOCATION";b$:ab$=UCASE$(b$)
IF LEFT$(s$,1)="y"THEN 10
GOTO 20
10 :
SAY TRANSLATE$(b$)
20 :
INPUT"LATITUDE";c:w=c:GOSUB conv
l = FNrad(w)
INPUT"LONGITUDE";e:w=e:GOSUB conv
m = FNrad(w)
IF p$="p"THEN 90
COLOR 1,0:CLS
PRINT TAB(31)"DISTANCE & HEADING "
LINE (233,8)-(390,8),1
PRINT DATE$
PRINT
PRINT"HOME LOCATION: "ab$;
PRINT USING " LAT ####.##";c;
PRINT USING " LONG ####.##";e
PRINT
PRINT "DISTANT LOCATION"TAB(23)"LAT"TAB(34)"LONG"TAB(45)"KM";
PRINT TAB(57)"MILES"TAB(69)"HEADING "
PRINT
WINDOW 3,,(0,50)-(629,186),0
30 :
WINDOW 4,,(210,100)-(410,125),0
PRINT"LIST or QUIT if required"
LINE (0,8)-(198,8),1
PRINT:COLOR 3,2:INPUT"CITY";d$
WINDOW CLOSE 4
IF d$="list"THEN 80
IF d$="quit"THEN NEW
40 :
READ a$,a,b
IF a$=b$THEN 40
IF b=e THEN m=m+0.001
IF LEFT$(a$,8)=LEFT$(d$,8)THEN 50
IF a$="xx"THEN RESTORE:PRINT UCASE$(d$);" NOT LISTED IN DATA":GOTO 30
GOTO 40
50 :
w=a:GOSUB conv
d=FNrad(w):w=b:GOSUB conv
f=FNrad(w)
GOSUB calc
a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y)
IF LEFT$(s$,1)="y"THEN 60
GOTO 70
60 :
SAY TRANSLATE$(a$):SAY TRANSLATE$(STR$(x)):SAY TRANSLATE$(mi$):SAY TRANSLATE$(STR$(y))
SAY TRANSLATE$(de$)
70 :
CLS
PRINT a$;
PRINT TAB(21) USING "####.##";a;
PRINT TAB(32) USING "####.##";b;
PRINT TAB(44)z TAB(57)x TAB(71)y
RESTORE:GOTO 30
80 :
READ a$,a,b
IF a$=b$THEN 80 'If distant location same as home location
IF b=e THEN m=m+0.001 'To prevent divide by zero error if latitudes are identical
w=a:GOSUB conv
d=FNrad(w):w=b:GOSUB conv
f=FNrad(w)
GOSUB conv
IF a$="xx"THEN RESTORE:GOTO 30
GOSUB calc
a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y)
PRINT a$;
PRINT TAB(21) USING "####.##";a;
PRINT TAB(32) USING "####.##";b;
PRINT TAB(44)z TAB(57)x TAB(71)y
GOTO 80
90 :
COLOR 1,0:CLS
OPEN "prt:" FOR OUTPUT AS #2 LEN=5
PRINT#2,CHR$(27);"[6q"
PRINT#2,TAB(21);CHR$(27);"[6w";CHR$(27);"[4m";" DISTANCE & HEADING ";CHR$(27);"[24m";CHR$(27);"[5w"
PRINT#2, DATE$
PRINT#2," "
PRINT#2,"HOME LOCATION: "ab$;
PRINT#2,USING " LAT ####.##";c;
PRINT#2,USING " LONG ####.##";e
PRINT#2," "
PRINT#2,CHR$(27);"[4m";"DISTANT LOCATION";TAB(26);"LAT";TAB(37);"LONG";TAB(49);"KM";
PRINT#2,TAB(61);"MILES";TAB(73);"HEADING ";CHR$(27);"[24m"
PRINT#2," "
100 :
WINDOW 3,,(210,100)-(410,125),0
PRINT"LIST or QUIT if required"
LINE (0,8)-(198,8),1
PRINT:COLOR 3,2:INPUT"CITY";d$
IF d$="list"THEN COLOR 1,0:CLS:PRINT:PRINT" PRINTING":GOTO 150
WINDOW CLOSE 3
IF d$="quit"THEN CLOSE#2:NEW
110 :
READ a$,a,b
IF a$=b$THEN 110
IF b=e THEN m=m+0.001
IF LEFT$(a$,8)=LEFT$(d$,8)THEN 120
IF a$="xx"THEN RESTORE:PRINT#2,UCASE$(d$);" NOT LISTED IN DATA":GOTO 100
GOTO 110
120 :
w=a:GOSUB conv
d=FNrad(w):w=b:GOSUB conv
f=FNrad(w)
GOSUB calc
a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y)
IF LEFT$(s$,1)="y"THEN 130
GOTO 140
130 :
SAY TRANSLATE$(a$):SAY TRANSLATE$(STR$(x)):SAY TRANSLATE$(mi$):SAY TRANSLATE$(STR$(y))
SAY TRANSLATE$(de$)
140 :
PRINT#2,a$;
PRINT#2,TAB(21); USING "####.##";a;
PRINT#2,TAB(32); USING "####.##";b;
PRINT#2,TAB(44);z; TAB(57);x; TAB(71);y
RESTORE:GOTO 100
150 :
READ a$,a,b
IF a$=b$THEN 150
IF b=e THEN m=m+0.001
w=a:GOSUB conv
d=FNrad(w):w=b:GOSUB conv
f=FNrad(w)
GOSUB conv
IF a$="xx"THEN RESTORE:GOTO 100
GOSUB calc
a$=UCASE$(a$):z=CINT(x*1.6093):x=CINT(x):y=CINT(y)
PRINT#2,a$;
PRINT#2,TAB(21); USING "####.##";a;
PRINT#2,TAB(32); USING "####.##";b;
PRINT#2,TAB(44);z; TAB(57);x; TAB(71);y
GOTO 150
calc:'Calculation of subtended angle for great circle arc
g=f-m:h=COS(g)*COS(d)*COS(l)+(SIN(d)*SIN(l))
i=-ATN(h/SQR(-h*h+1))+pi/2:j=(SIN(d)-SIN(l)*COS(i))/(SIN(i)*COS(l))
x=i*5.36162e-315
y=(-ATN(j/SQR(-j*j+1))+pi/2)*180/pi
IF SGN(SIN(g))=1 THEN y=360-y:RETURN
conv:'Conversion of DEG.MIN to decimal degrees including negative numbers
v=(ABS(w)-INT(ABS(w)))*100/60+INT(ABS(w))
IF w<0 THEN v=-v
w=v:RETURN
DATA aberdeen,57.09,2.06
DATA addis ababa,9.02,-38.42
DATA adelaide,-34.55,-138.32
DATA anchorage,61.32,149.5
DATA ankara,40,-32.54
DATA antigua,17,61.5
DATA antwerp,51.13,-4.25
DATA athens,37.58,-23.46
DATA atlanta,33.5,84.15
DATA auckland,-36.52,-174.46
DATA augusta,33.29,81.59
DATA austin,30.2,97.45
DATA azores,38.44,29
DATA bagdad,33.2,-44.3
DATA bahamas,24.4,74
DATA bali,-8.2,-115
DATA bangkok,13.45,-100.31
DATA barbados,13,59.3
DATA barcelona,41.21,-2.1
DATA basel,47.35,-7.35
DATA beiping,39.5,-116.2
DATA beirut,33.53,-35.31
DATA belfast,54.35,5.36
DATA belgrade,44.5,-20.37
DATA berlin,52.32,-13.24
DATA bermuda,32.2,65.45
DATA bern,46.57,-7.28
DATA bogota,4.34,74
DATA bombay,18.55,-72.5
DATA bonn,50.43,-7.06
DATA boston,42.2,71
DATA brisbane,-27.25,-152.54
DATA bristol,51.26,2.35
DATA brunei,4.5,-115
DATA bucharest,44.27,-26.1
DATA budapest,47.29,-19.05
DATA buenos aires,-34.3,58.2
DATA buffalo,42.55,78.5
DATA cairo,30.01,-31.14
DATA calais,50.57,-1.56
DATA calcutta,-35.15,-149.08
DATA calgary,51,114.1
DATA canary is,29.3,17
DATA canberra,-35.15,-149.08
DATA canton,23.15,-113.15
DATA capetown,-33.56,-18.28
DATA caracas,10.3,66.5
DATA cardiff,51.28,3.11
DATA cayman is,19.4,79.5
DATA cedar rapids,42,91.38
DATA ceylon,7.3,-80.5
DATA chatham,47.02,65.28
DATA chicago,41.56,87.5
DATA christchurch,-43.33,-172.39
DATA cleveland,41.28,81.43
DATA cook is,-22,157
DATA copenhagen,55.41,-12.34
DATA corsica,42,-9
DATA costa rica,10,84
DATA crete,35.2,-25
DATA curacao,12.1,69
DATA cyprus,35,-33
DATA dakar,14.34,17.29
DATA dallas,32.5,96.5
DATA damascus,33.3,-36.18
DATA darwin,-12.2,-130.5
DATA delhi,28.38,-77.17
DATA denver,39.48,105
DATA detroit,42.2,83.5
DATA dublin,53.2,6.18
DATA dubrovnik,42.39,-18.6
DATA duluth,46.48,92.1
DATA dundee,56.29,3
DATA edinburgh,55.57,3.12
DATA edmonton,53.3,113.3
DATA falkland is,-55,45
DATA fiji,-17.2,-179
DATA frankfurt,50.7,-8.4
DATA gander,48.58,54.35
DATA geneva,46.12,-6.09
DATA gibralter,36.07,5.22
DATA glasgow,55.52,4.14
DATA goose bay,53.15,60.2
DATA grenada,12.1,61.4
DATA haiti,19.06,72.3
DATA halifax,44.38,63.35
DATA hamburg,53.32,-9.59
DATA havana,23.08,82.22
DATA hawaii,19.35,155.3
DATA helsinki,60.15,-25.03
DATA hobart,-42.5,-147.21
DATA honduras,14.4,86.3
DATA hong kong,22.11,-14.14
DATA honolulu,21.25,157.55
DATA houston,29.5,95.2
DATA innsbruck,47.16,-11.23
DATA jakarta,-6.09,-106.49
DATA jamaica,18.1,77.3
DATA johannesburg,-26.1,-28.08
DATA keflavik,64.02,22.35
DATA key west,24.4,82
DATA knoxville,35.58,83.57
DATA kuala lumpur,3.09,-101.41
DATA kuwait,29.3,-47.3
DATA la ceiba,15.4,86.5
DATA la paz,-16.2,68.1
DATA lagos,6.25,-3.27
DATA las vegas,36.1,115.05
DATA lima,-12.06,76.55
DATA lisbon,38.42,9.1
DATA london ont,43,81.2
DATA london,51.3,.07
DATA los angeles,34,118.1
DATA madeira is,32.5,17
DATA madras,13.08,-80.19
DATA madrid,40.25,3.45
DATA malta,35.5,-14.3
DATA manchester,53.3,2.15
DATA manila,14.4,-121.03
DATA melbourne,-37.4,-145
DATA mexico city,19.2,99.1
DATA miami,25.52,80.15
DATA milan,45.28,-9.1
DATA minneapolis,44.58,93.2
DATA moncton,46.07,64.51
DATA montreal,45.31,73.34
DATA moscow,55.45,-37.35
DATA munich,48.08,-11.33
DATA nairobi,-1.2,-36.5
DATA nanaimo,49.1,124
DATA naples,40.4,-14.05
DATA nashville,36.12,86.46
DATA nassau,25,77.3
DATA new orleans,30,90.05
DATA new york,40.45,74
DATA nicaragua,11.4,85.3
DATA north bay,46.2,79.3
DATA orlando,28.3,81.25
DATA oshawa,43.53,53.76
DATA oslo,59.53,-10.52
DATA ottawa,45.27,75.42
DATA palm springs,33.51,116.35
DATA panama,9,79.25
DATA papua,-8,-145
DATA paris,48.5,-2.2
DATA penang,5.3,-100.28
DATA perth,-31.57,-115.52
DATA phoenix,33.3,112.1
DATA quebec,46.52,71.13
DATA quito,-.15,78.35
DATA regina,50.3,104.35
DATA reno,39.3,119.5
DATA rio de janeiro,-22.5,43
DATA rome,41.54,-12.3
DATA saint john,45.16,66.03
DATA salzburg,47.48,-13.02
DATA san diego,32.5,117.1
DATA san francisco,37.45,122.3
DATA santiago,47.48,-13.02
DATA sao paulo,-23.32,46.37
DATA sarasota,27.1,82.3
DATA saskatoon,52.1,106.4
DATA sault ste marie,46.32,84.2
DATA seattle,47.36,122.2
DATA shanghai,31.1,-121.25
DATA shannon,52.35,9.3
DATA singapore,1.17,-103.51
DATA split,43.31,-16.26
DATA sri lanka,7.3,-80.5
DATA st johns,47.34,52.41
DATA st louis,38.4,90.12
DATA st petersburg,27,82.4
DATA stockholm,59.17,-18.03
DATA sudbury,46.3,81
DATA sumatera,-.4,-100.2
DATA sydney,-33.53,-151.1
DATA tahiti,-17.45,-149.3
DATA taipei,25.02,-121.3
DATA tampa,28,82.25
DATA tasmania,-49,-146.3
DATA tehran,35.44,-51.3
DATA telaviv,32.04,-34.45
DATA thunder bay,48.25,89.1
DATA timmins,48.28,81.25
DATA tokyo,35.45,-139.45
DATA toronto,43.39,79.2
DATA trinidad,10.3,61.2
DATA tucson,32.13,110.58
DATA vancouver,49.2,123.1
DATA victoria,48.3,111
DATA vienna,48.12,-16.22
DATA windsor,42.18,83
DATA winnipeg,49.5,97.15
DATA zurich,47.22,-8.32
DATA xx,0,0
'This must be included to prevent out of data error